function P=MWLS_step_player(G,P,k)
A=P.A;p=length(A);
B=P.B;q=length(B);
B2=B(2:end);
Gamma=P.Gamma;m=length(Gamma);
u=randn(1);
x=0;
xnbs=[];
for k=P.Neighbors,
    xnbs=[xnbs,G.P{k}.Vars(1)];
end;
xhis=zeros(1,p);
for k=1:min(p,G.step-1),
    xhis(k)=P.VarsData(G.step-k,1);
end;
uhis=zeros(1,q-1);
for k=1:min(q-1,G.step-1),
    uhis(k)=P.VarsData(G.step-k,2);
end;

wnew=randn(1)
phi=[uhis,xhis,xnbs]
theta=[B2,-A,Gamma]
% [theta_new,P_new,w_new,err_last]=WLS_step(theta,P,phi,y,alpha)
unew=-sum(theta.*phi)
xnew=unew+sum(B2.*uhis)+sum(Gamma.*xnbs)-sum(A.*xhis)+wnew
P.Vars=[xnew,unew,wnew];

